/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package com.plian.system.entity.yth.realproperty;

import com.baomidou.mybatisplus.annotation.TableName;
import com.plian.system.entity.yth.YthBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 不动产-房产登记表实体类
 *
 * @author BladeX
 * @since 2023-01-09
 */
@Data
@TableName("real_estate_house")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "House对象", description = "不动产-房产登记表")
public class House extends YthBaseEntity{

	/**
	 * 归属单位id
	 */
	@ApiModelProperty(value = "归属单位id")
	private Long belongUnitId;
	/**
	 * 不动产性质（0：土地 1：房产2：出租单元3：承租户）
	 */
	@ApiModelProperty(value = "不动产性质（0：土地 1：房产2：出租单元3：承租户）")
	private Integer realEstateType;
	/**
	 * 不动产编号
	 */
	@ApiModelProperty(value = "不动产编号")
	private String number;
	/**
	 * 变更单号
	 */
	@ApiModelProperty(value = "变更单号")
	private String adjustNumber;
	/**
	 * 地块名称
	 */
	@ApiModelProperty(value = "地块名称")
	private String name;
	/**
	 * 坐落位置
	 */
	@ApiModelProperty(value = "坐落位置")
	private String address;
	/**
	 * 土地取的时间 精确到天
	 */
	@ApiModelProperty(value = "土地取的时间 精确到天")
	private LocalDate takeTime;
	/**
	 * 土地性质（0：集体土地 1：国有出让 2：国有划拨 3：其他）
	 */
	@ApiModelProperty(value = "土地性质（0：集体土地 1：国有出让 2：国有划拨 3：其他）")
	private Integer landType;
	/**
	 * 土地总面积 ㎡（总=已确权+未确权）
	 */
	@ApiModelProperty(value = "土地总面积 ㎡（总=已确权+未确权）")
	private BigDecimal landArea;
	/**
	 * 土地用途（0：商业用地1：林地2：交通运输用地3：草地4：水域5：工矿仓储用地6：特殊用地7：园地8：住宅用地9：耕地10：其他）
	 */
	@ApiModelProperty(value = "土地用途（0：商业用地1：林地2：交通运输用地3：草地4：水域5：工矿仓储用地6：特殊用地7：园地8：住宅用地9：耕地10：其他）")
	private Integer landUse;
	/**
	 * 土地入账价值（万元）
	 */
	@ApiModelProperty(value = "土地入账价值（万元）")
	private BigDecimal entryValue;
	/**
	 * 是否确权（0：否1：是）
	 */
	@ApiModelProperty(value = "土地确权情况（0：已确权1：未确权2：部分确权")
	private Integer confirmType;
	/**
	 * 已确权面积（㎡）
	 */
	@ApiModelProperty(value = "已确权面积（㎡）")
	private BigDecimal confirmedArea;
	/**
	 * 权证人
	 */
	@ApiModelProperty(value = "权证人")
	private String warrantor;
	/**
	 * 证号
	 */
	@ApiModelProperty(value = "证号")
	private String certNo;
	/**
	 * 发证日期 精确到天
	 */
	@ApiModelProperty(value = "发证日期 精确到天")
	private LocalDate certDate;
	/**
	 * 未确权面积
	 */
	@ApiModelProperty(value = "未确权面积")
	private BigDecimal unConfirmedArea;
	/**
	 * 未确权原因
	 */
	@ApiModelProperty(value = "未确权原因")
	private String unConfirmedReason;
	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	private String remark;
	/**
	 * 房产名称
	 */
	@ApiModelProperty(value = "房产名称")
	private String houseName;
	/**
	 * 房产地址
	 */
	@ApiModelProperty(value = "房产地址")
	private String houseAddress;
	/**
	 * 房屋结构（0：钢筋混凝土结构，1：砖混结构，2：钢结构，3：框架结构，4：框混结构，5：砖木结构，6：土坯房，7：预制板，8：其他）
	 */
	@ApiModelProperty(value = "房屋结构（0：钢筋混凝土结构，1：砖混结构，2：钢结构，3：框架结构，4：框混结构，5：砖木结构，6：土坯房，7：预制板，8：其他）")
	private Integer struct;
	/**
	 * 房产性质（0：商业体，1：住宅，2：车位，3：商业办公，4：其他）
	 */
	@ApiModelProperty(value = "房产性质（0：商业体，1：住宅，2：车位，3：商业办公，4：其他）")
	private Integer houseType;
	/**
	 * 房产总面积 ㎡（总=房屋已确权面积+房屋未确权面积）
	 */
	@ApiModelProperty(value = "房产总面积 ㎡（总=房屋已确权面积+房屋未确权面积）")
	private BigDecimal houseArea;
	/**
	 * 房产入账价值（万元）
	 */
	@ApiModelProperty(value = "房产入账价值（万元）")
	private BigDecimal houseEntryValue;
	/**
	 * 权利类型
	 */
	@ApiModelProperty(value = "权利类型")
	private String powerType;
	/**
	 * 房产来源：0:置换，1:股权分配，2:购买，3:改制，4:划拨，5:自建，6:接受捐赠，7:盘盈，8:其他
	 */
	@ApiModelProperty(value = "房产来源：0:置换，1:股权分配，2:购买，3:改制，4:划拨，5:自建，6:接受捐赠，7:盘盈，8:其他")
	private Integer source;
	/**
	 * 房产规划用途：0:交通，1:公共设施，2:物业服务，3:仓储，4:商业，5:自行车库，6:汽车位，7:储藏室，8:办公，9:集体宿舍，10:住宅，11:工业，12:园林绿化，13:物业公共配套，14:文化新闻娱乐体育，15其他
	 */
	@ApiModelProperty(value = "房产规划用途：0:交通，1:公共设施，2:物业服务，3:仓储，4:商业，5:自行车库，6:汽车位，7:储藏室，8:办公，9:集体宿舍，10:住宅，11:工业，12:园林绿化，13:物业公共配套，14:文化新闻娱乐体育，15其他")
	private Integer planUse;
	/**
	 * 车位数量
	 */
	@ApiModelProperty(value = "车位数量")
	private Integer carCount;
	/**
	 * 确权情况（0：已确权1：未确权2：部分确权）
	 */
	@ApiModelProperty(value = "房产确权情况（0：已确权1：未确权2：部分确权）")
	private Integer houseConfirmType;
	/**
	 * 房产确权面积
	 */
	@ApiModelProperty(value = "房产确权面积")
	private BigDecimal houseConfirmedArea;
	/**
	 * 证件类型（0：房产证1：不动产证）
	 */
	@ApiModelProperty(value = "证件类型（0：房产证1：不动产证）")
	private Integer certType;
	/**
	 * 权证人
	 */
	@ApiModelProperty(value = "权证人")
	private String houseWarrantor;
	/**
	 * 证号
	 */
	@ApiModelProperty(value = "证号")
	private String houseCertNo;
	/**
	 * 发证日期 精确到天
	 */
	@ApiModelProperty(value = "发证日期 精确到天")
	private LocalDate houseCertDate;
	/**
	 * 未确权面积
	 */
	@ApiModelProperty(value = "未确权面积")
	private BigDecimal houseUnConfirmedArea;
	/**
	 * 未确权原因
	 */
	@ApiModelProperty(value = "未确权原因")
	private String houseUnConfirmedReason;
	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
	private String houseRemark;
	/**
	 * 是否有可出租面积（0：否1：是）
	 */
	@ApiModelProperty(value = "是否有可出租面积（0：否1：是）")
	private Integer isRental;
	/**
	 * 可出租面积（㎡）
	 */
	@ApiModelProperty(value = "可出租面积（㎡）")
	private BigDecimal rentalArea;
	/**
	 * 是否有可收费的车位（0：否1：是）
	 */
	@ApiModelProperty(value = "是否有可收费的车位（0：否1：是）")
	private Integer isPaidParking;
	/**
	 * 可收费车位数
	 */
	@ApiModelProperty(value = "可收费车位数")
	private Integer parkingCount;
	/**
	 * 是否有出租单元（0：否1：是）
	 */
	@ApiModelProperty(value = "是否有出租单元（0：否1：是）")
	private Integer isRentalUnit;
	/**
	 * 是否公允值入账（0：否1：是）
	 */
	@ApiModelProperty(value = "是否公允值入账（0：否1：是）")
	private Integer isFairValue;
	/**
	 * 是否存续合同（0：否1：是）
	 */
	@ApiModelProperty(value = "是否存续合同（0：否1：是）")
	private Integer isSurvivingContract;
	/**
	 * 出租-备注
	 */
	@ApiModelProperty(value = "出租-备注")
	private String rentalRemark;
	/**
	 * 是否有自用面积
	 */
	@ApiModelProperty(value = "是否有自用面积")
	private Integer isPersonalUse;
	/**
	 * 可自用面积（㎡ 自用=免税面积+应税面积）
	 */
	@ApiModelProperty(value = "可自用面积（㎡ 自用=免税面积+应税面积）")
	private BigDecimal personalUserArea;
	/**
	 * 免税面积
	 */
	@ApiModelProperty(value = "免税面积")
	private BigDecimal dutyFreeArea;
	/**
	 * 应税面积
	 */
	@ApiModelProperty(value = "应税面积")
	private BigDecimal taxableArea;
	/**
	 * 自用-备注
	 */
	@ApiModelProperty(value = "自用-备注")
	private String personalUseRemark;
	/**
	 * 是否闲置面积
	 */
	@ApiModelProperty(value = "是否闲置面积")
	private Integer isFreeArea;
	/**
	 * 闲置面积（㎡）
	 */
	@ApiModelProperty(value = "闲置面积（㎡）")
	private BigDecimal freeArea;
	/**
	 * 闲置-备注
	 */
	@ApiModelProperty(value = "闲置-备注")
	private String freeRemark;
	/**
	 * 附件ids
	 */
	@ApiModelProperty(value = "附件ids")
	private String attachIds;
	/**
	 * 填报组织id
	 */
	@ApiModelProperty(value = "填报组织id")
	private Long reportOrgId;
	/**
	 * 填报单位
	 */
	@ApiModelProperty(value = "填报单位")
	private String reportOrgName;
	/**
	 * 填报人id
	 */
	@ApiModelProperty(value = "填报人id")
	private Long reportUserId;
	/**
	 * 填报人
	 */
	@ApiModelProperty(value = "填报人")
	private String reportUserName;
	/**
	 * 填报日期
	 */
	@ApiModelProperty(value = "填报日期")
	private LocalDate reportTime;
	/**
	 * 流程实例id
	 */
	@ApiModelProperty(value = "流程实例id")
	private String processInstanceId;
	/**
	 * 流程环节（0：企业内审1：上级审核2：国资备案）
	 */
	@ApiModelProperty(value = "流程环节（0：企业内审1：上级审核2：国资备案）")
	private Integer processStatus;
	/**
	 * 审核状态（0：草稿1：待审核2：审核中3：已通过4：已驳回）
	 */
	@ApiModelProperty(value = "审核状态（0：草稿1：待审核2：审核中3：已通过4：已驳回）")
	private Integer auditStatus;
	/**
	 * 房产状态（0：登记中1：已登记2：调整中3：注销中4：已注销）
	 */
	@ApiModelProperty(value = "房产状态（0：登记中1：已登记2：调整中3：注销中4：已注销）")
	private Integer registerStatus;

	@ApiModelProperty(value = "流程操作类型(0：上报1：调整2：注销)")
	private Integer operateType;

	@ApiModelProperty(value = "年度")
	private Integer year;

	@ApiModelProperty(value = "已出租面积")
	private BigDecimal leasedArea;

	@ApiModelProperty(value = "应收租金")
	private BigDecimal receivableRent;

	@ApiModelProperty(value = "实收租金")
	private BigDecimal actualRent;

	@ApiModelProperty(value = "应收金额")
	private BigDecimal receivableAmount;

	@ApiModelProperty(value = "来源模块")
	private Integer sourceModule;

	@ApiModelProperty(value = "来源模块业务id")
	private Long sourceBizId;
}
